import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from google.appengine.dist import use_library
use_library('django', '1.2')

from google.appengine.ext.webapp import template

import random
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app


class MainHandler(webapp.RequestHandler):
  def get(self):
    template_values = {}
    path = os.path.join(os.path.dirname(__file__), 'hello.html')
    self.response.out.write(template.render(path, template_values))

class QuizHandler(webapp.RequestHandler):
  def get(self):
    template_values = {'name' : self.request.get('name') }
    path = os.path.join(os.path.dirname(__file__), 'quiz.html')
    self.response.out.write(template.render(path, template_values))

class WrongAnswer:
  def __init__(self, question, guess, correct):
    self.question = question
    self.guess = guess
    self.correct = correct


class GradeQuizHandler(webapp.RequestHandler):
  def get(self):
    addition_guess = self.request.get('addition')
    capital_guess = self.request.get('capital')
    template_values = {'name' : self.request.get('name'), 'wrong_answers' :[]}
    capital_guess = capital_guess.strip().lower().capitalize()
   
    if addition_guess != "7":
       template_values['wrong_answers'].append(WrongAnswer("3 + 4", addition_guess, 7))
    
    if capital_guess != "Sacramento":
       template_values['wrong_answers'].append(WrongAnswer("Capital of California", capital_guess, "Sacramento"))



    path = os.path.join(os.path.dirname(__file__), 'grade_quiz.html')
    self.response.out.write(template.render(path, template_values))


class DiceHandler(webapp.RequestHandler):
  def get(self):
        DICE_ROLLS = self.request.get('times')
        DICE_ROLLS = int(DICE_ROLLS)
        self.response.out.write ("Rolling the dice " + str(DICE_ROLLS) + " times"+"<br>")
        
        for roll_num in range(DICE_ROLLS):
                # Simulate rolling two dice.
                dice_1 = random.randint(1, 6)
                dice_2 = random.randint(1, 6)
                self.response.out.write("Rolls:"+ str(dice_1) + ", "+ str(dice_2) + "<br>")
                if dice_1 == 6 and dice_2 == 6:
                        self.response.out.write("Got Double Sixes!"+"<br>")
                elif dice_1 == 1 and dice_2 == 1:
                        self.response.out.write("Got Snake Eyes!"+"<br>")
                elif dice_1 == dice_2 and dice_1 != 6:
                        self.response.out.write("Got Doubles!"+"<br>")
                else:
                        self.response.out.write("Nothing special here." +"<br>")

def main():
  application = webapp.WSGIApplication([('/dice.*', DiceHandler),
                                        ('/hello.*', MainHandler),
                                        ('/grade_quiz', GradeQuizHandler),
                                        ('/quiz', QuizHandler)],
                                        debug=True)
  run_wsgi_app(application)

if __name__ == '__main__':
  main()
